/*
 * Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com
 *
 * This software is provided 'as-is', without any express or implied
 * warranty.  In no event will the authors be held liable for any damages
 * arising from the use of this software.
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 * 1. The origin of this software must not be misrepresented; you must not
 * claim that you wrote the original software. If you use this software
 * in a product, an acknowledgment in the product documentation would be
 * appreciated but is not required.
 * 2. Altered source versions must be plainly marked as such, and must not be
 * misrepresented as being the original software.
 * 3. This notice may not be removed or altered from any source distribution.
 */

package org.box2dflash.collision {
	import org.box2dflash.common.math.Vec2;
	import org.box2dflash.collision.ContactID;
	import org.box2dflash.collision.*;

	/// A manifold point is a contact point belonging to a contact
	/// manifold. It holds details related to the geometry and dynamics
	/// of the contact points.
	/// The point is stored in local coordinates because CCD
	/// requires sub-stepping in which the separation is stale.
	public class ManifoldPoint {
		public function reset():void {
			localPoint1.zero();
			localPoint2.zero();
			separation = 0.0;
			normalImpulse = 0.0;
			tangentImpulse = 0.0;
			id.key = 0;
		}

//		public function set (m:ManifoldPoint):void {
//			localPoint1.v(m.localPoint1);
//			localPoint2.v(m.localPoint2);
//			separation = m.separation;
//			normalImpulse = m.normalImpulse;
//			tangentImpulse = m.tangentImpulse;
//			id.key = m.id.key;
//		}

		public var localPoint1:Vec2 = new Vec2();
		public var localPoint2:Vec2 = new Vec2();
		public var separation:Number;
		public var normalImpulse:Number;
		public var tangentImpulse:Number;
		public var id:ContactID = new ContactID();
	}
}